package com.bdc.whatwhat.Service;

import com.bdc.whatwhat.modele.*;

import java.util.List;

import retrofit.http.Field;
import retrofit.http.FormUrlEncoded;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.Path;
import retrofit.http.Query;

/**
 * Created by florentchampigny on 25/06/14.
 */
public interface WhatWhatService {

    public static final String ENDPOINT = "http://whatwhat.url.ph";
    public static final String ORIGIN_FACEBOOK = "fb";
    public static final String ORIGIN_GOOGLE_PLUS = "gplus";

    @FormUrlEncoded
    @POST("/?method=connexion")
    public String connexion(@Field("email") String email, @Field("origin") String origin, @Field("id") String id,@Field("token") String token, @Field("nom") String nom,@Field("prenom") String prenom,@Field("os") String os,@Field("jeton") String jeton);

    @GET("/?method=flux")
    public List<WhatWhat> flux(@Query("page") Integer page, @Query("token") String token);

    @GET("/?method=monFlux")
    public MonFlux monFlux(@Query("token") String token);

    @GET("/?method=monProfil")
    public Whatter monProfil(@Query("token") String token);

    @GET("/?method=mesAmis")
    public List<Whatter> mesAmis(@Query("page") Integer page, @Query("token") String token);

    //les demandes d'approbations
    @GET("/?method=mesDemandes")
    public List<Whatter> mesDemandes(@Query("page") Integer page, @Query("token") String token);

    @GET("/?method=mesNotifications")
    public List<Notification> mesNotifications(@Query("token") String token);

    @GET("/?method=ajouterAmi")
    public List<Whatter> ajouterAmi(@Query("token") String token, @Query("utilisateur") String utilisateur);

    @GET("/?method=refuserAmi")
    public String refuserAmi(@Query("token") String token, @Query("utilisateur") String utilisateur);

    //les demandes d'approbations
    @GET("/?method=nombreDeDemandes")
    public Integer nombreDeDemandes(@Query("token") String token);

    @GET("/?method=recherche")
    public List<WhatWhat> recherche(@Query("phrase") String phrase, @Query("page") Integer page, @Query("token") String token);

    @GET("/?method=rechercheUtilisateur")
    public List<Whatter> rechercheUtilisateur(@Query("phrase") String phrase, @Query("page") Integer page, @Query("token") String token);

    @POST("/?method=faire")
    public WhatWhat envoyerWhatWhatExistant(@Query("id") String id, @Query("token") String token);

    @POST("/?method=faire")
    public WhatWhat envoyerWhatWhat(@Query("phrase") String phrase, @Query("token") String token);

    @GET("/?method=demandeWhatWhat")
    public String demandeWhatWhat(@Query("utilisateur") String utilisateur, @Query("token") String token);

    @GET("/?method=aimer")
    public String aimer(@Query("id") String id, @Query("token") String token);

}
